nmf.cpp